home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / circuits / irsim-ca.2 / irsim-ca / irsim-cap-9.2 / src / fsim / globals.h < prev    next >
C/C++ Source or Header  |  1995-11-03  |  10KB  |  346 lines

  1.  
  2.     /* EXPORTS FROM access.c */
  3.  
  4. typedef    struct
  5.   {
  6.     char  exist;
  7.     char  read;
  8.     char  write;
  9.   } Fstat;
  10. extern Fstat *FileStatus( /*  name */ );
  11.  
  12.     /* EXPORTS FROM binsim.c */
  13.  
  14. extern void wr_netfile( /*  fname */ );
  15. extern int rd_netfile( /*  f, line */ );
  16. extern nptr bin_connect_txtors( /* */ );
  17.  
  18.     /* EXPORTS FROM cad_dir.c */
  19.  
  20. extern char    *cad_lib;
  21. extern char    *cad_bin;
  22. extern void InitCAD( /* */ );
  23.  
  24.     /* EXPORTS FROM config.c */
  25.  
  26. extern double  CM2A ;
  27. extern double  CM2P ;
  28. extern double  CMA ;
  29. extern double  CMP ;
  30. extern double  CPA ;
  31. extern double  CPP ;
  32. extern double  CDA ;
  33. extern double  CDP ;
  34. extern double  CPDA ;
  35. extern double  CPDP ;
  36. extern double  CGA ;
  37. extern double    CTDW;
  38. extern double    CTDE;
  39. extern double    CTGA;
  40. extern double  LAMBDA ;
  41. extern double  LAMBDA2 ;
  42. extern long    LAMBDACM ;
  43. extern double  LOWTHRESH ;
  44. extern double  HIGHTHRESH ;
  45. extern double  DIFFEXT ;
  46. extern int    config_flags ;
  47. #define    TDIFFCAP    0x1    /* set if DIFFPERIM or DIFFEXTF are true    */
  48. extern void config( /*  cname */ );
  49. extern Resists *requiv( /*  type, width, length */ );
  50.  
  51.     /* EXPORTS FROM conn_list.c */
  52.  
  53. #define    MAX_PARALLEL    30    /* this is probably sufficient per stage */
  54. extern tptr  parallel_xtors[ /* MAX_PARALLEL */ ];
  55. #define    par_list( T )        ( parallel_xtors[ (T)->n_par ] )
  56. extern void BuildConnList( /*  n */ );
  57. extern void WarnTooManyParallel( /*  s1, s2 */ );
  58.  
  59.     /* EXPORTS FROM eval.c */
  60.  
  61. #define    LIN_MODEL    0
  62. #define    SWT_MODEL    1
  63. #define    NMODEL        2        /* number of models supported */
  64. extern void (*model_table[ /*NMODEL*/ ])( /* */ );
  65. extern int    model_num ;
  66. extern void    (*model)( /* */ );
  67. extern int    sm_stat ;
  68. extern int    treport ;
  69. extern void NoInit( /* */ );
  70. extern void ReInit( /* */ );
  71. extern int step( /*  stop_time */ );
  72. extern char  switch_state[ /*NTTYPES*/ ][ 4 ] ;
  73. #define     compute_trans_state( TRANS )                    \
  74.     ( ((TRANS)->ttype & GATELIST) ?                    \
  75.     ComputeTransState( TRANS ):                    \
  76.     switch_state[ BASETYPE( (TRANS)->ttype ) ][ (TRANS)->gate->npot ] )
  77. extern int ComputeTransState( /*  t */ );
  78.  
  79.     /* EXPORTS FROM fio.c */
  80.  
  81. extern char *fgetline( /*  bp, len, fp */ );
  82. extern int Fread( /*  ptr, size, fp */ );
  83. extern int Fwrite( /*  ptr, size, fp */ );
  84.  
  85.     /* EXPORTS FROM hist.c */
  86.  
  87. extern hptr   freeHist ;
  88. extern  hptr   last_hist;
  89. extern int    num_edges ;
  90. extern int    num_punted ;
  91. extern int    num_cons_punted ;
  92. extern hptr   first_model;
  93. extern Ulong  max_time;
  94. extern void init_hist( /* */ );
  95. extern void SetFirstHist( /*  node, value, inp, time */ );
  96. extern void AddHist( /*  node, value, inp, time, delay, rtime */ );
  97. extern void AddPunted( /*  node, ev, tim */ );
  98. extern void FreeHistList( /*  node */ );
  99. extern void NoMoreIncSim( /* */ );
  100. extern void NewModel( /*  nmodel */ );
  101. extern void NewEdge( /*  nd, ev */ );
  102. extern void DeleteNextEdge( /*  nd */ );
  103. extern void FlushHist( /*  ftime */ );
  104. extern int backToTime( /*  nd */ );
  105.  
  106.     /* EXPORTS FROM hist_io.c */
  107.  
  108. extern void DumpHist( /*  fname */ );
  109. extern void ReadHist( /*  fname */ );
  110.  
  111.     /* EXPORTS FROM intr.c */
  112.  
  113. extern int    int_received ;
  114. extern void InitSignals( /* */ );
  115.  
  116.     /* EXPORTS FROM incsim.c */
  117.  
  118. extern long    INC_RES ;
  119. extern nptr    inc_cause ;
  120. extern long    nevals ;
  121. extern long    i_nevals ;
  122. extern long    nreval_ev ;
  123. extern long    npunted_ev ;
  124. extern long    nstimuli_ev ;
  125. extern long    ncheckpt_ev ;
  126. extern long    ndelaychk_ev ;
  127. extern long    ndelay_ev ;
  128. extern int    fault_mode ;
  129. extern void incsim( /*  ch_list */ );
  130. extern void init_faultsim( /* */ );
  131. extern void end_faultsim( /* */ );
  132. extern void faultsim( /*  n */ );
  133.  
  134.     /* EXPORTS FROM mem.c */
  135.  
  136. typedef union MElem
  137.   {
  138.     union MElem  *next;        /* points to next element in linked list */
  139.     int          align[1];    /* dummy used to force word alignment */
  140.   } *MList;
  141. extern char *Falloc( /*  nbytes, no_mem_exit */ );
  142. extern void Ffree( /*  p, nbytes */ );
  143. extern MList MallocList( /*  nbytes, no_mem_exit */ );
  144. extern void Vfree( /*  ptr */ );
  145. extern char *Valloc( /*  nbytes, no_mem_exit */ );
  146.  
  147.     /* EXPORTS FROM netupdate.c */
  148.  
  149. extern iptr rd_changes( /*  fname, logname */ );
  150.  
  151.     /* EXPORTS FROM network.c */
  152.  
  153. extern iptr  hinputs ;
  154. extern iptr  linputs ;
  155. extern iptr  uinputs ;
  156. extern iptr  xinputs ;
  157. extern iptr  infree ;
  158. extern iptr  *listTbl[ /*8*/ ];
  159. #define    FreeInput( X )    (X)->next = infree, infree = (X)
  160. extern void init_listTbl( /* */ );
  161. extern void idelete( /*  n, list */ );
  162. extern void iinsert( /*  n, list */ );
  163. extern void iinsert_once( /*  n, list */ );
  164. extern void ClearInputs( /* */ );
  165. extern int setin( /*  n, which */ );
  166. extern int wr_state( /*  fname */ );
  167. extern char *rd_state( /*  fname, restore */ );
  168. extern int info( /*  n, which */ );
  169.  
  170.     /* EXPORTS FROM newrstep.c */
  171.  
  172. extern int       tunitdelay ;
  173. extern int       tdecay ;
  174. extern char      withdriven;
  175. extern void linear_model( /*  n */ );
  176. extern void InitThevs( /* */ );
  177.  
  178.     /* EXPORTS FROM nsubrs.c */
  179.  
  180. extern char   vchars[ /**/ ] ;
  181. extern char  *ttype[ /* NTTYPES */ ] ;
  182. extern int GetHashSize( /* */ );
  183. extern int str_eql( /*  s1, s2 */ );
  184. extern int str_match( /*  p, s */ );
  185. extern nptr find( /*  name */ );
  186. extern nptr GetNode( /*  name */ );
  187. extern nptr GetNewNode( /*  name */ );
  188. extern void n_insert( /*  nd */ );
  189. extern void n_delete( /*  nd */ );
  190. extern void walk_net( /*  fun, arg */ );
  191. extern void walk_net_index( /*  fun, arg */ );
  192. extern nptr GetNodeList( /* */ );
  193. extern nptr Index2node( /*  index */ );
  194. extern Ulong Node2index( /*  nd */ );
  195. extern int match_net( /*  pattern, fun, arg */ );
  196. #define    pnode( NODE )    ( (NODE)->nname )
  197. extern void init_hash( /* */ );
  198.  
  199.     /* EXPORTS FROM parallel.c */
  200.  
  201. extern void make_parallel( /*  nlist */ );
  202. extern void UnParallelTrans( /*  t */ );
  203. extern int pParallelTxtors( /* */ );
  204.  
  205.     /* EXPORTS FROM prints.c */
  206.  
  207. extern void lprintf( /*  va_alist */ );
  208. extern void error( /*  va_alist */ );
  209.  
  210.     /* EXPORTS FROM rsim.c */
  211.  
  212. extern int    count_InTrans ;
  213. extern int    analyzerON ;
  214. extern long    sim_time0 ;
  215. extern FILE    *logfile ;
  216. extern FILE    *caplogfile ;
  217. extern float    totpower ;
  218. extern  float   vsupply ;
  219. extern  float   capstarttime ;
  220. extern  float   capstoptime ;
  221. extern  float    captime ;
  222. extern  float    powermult ;
  223. extern float    GndCap ;
  224. extern float    VddCap ;
  225. extern void disp_watch_vec( /*  which */ );
  226. extern void rm_del_from_lists( /* */ );
  227. #define    DEBUG_EV        0x01        /* event scheduling */
  228. #define    DEBUG_DC        0x02        /* final value computation */
  229. #define    DEBUG_TAU        0x04        /* tau/delay computation */
  230. #define    DEBUG_TAUP        0x08        /* taup computation */
  231. #define    DEBUG_SPK        0x10        /* spike analysis */
  232. #define    DEBUG_TW        0x20        /* tree walk */
  233. #define    REPORT_DECAY    0x1
  234. #define    REPORT_DELAY    0x2
  235. #define    REPORT_TAU    0x4
  236. #define    REPORT_TCOORD    0x8
  237. #define    REPORT_CAP    0x10
  238. extern main( /*  argc, argv */ );
  239.  
  240.     /* EXPORTS FROM sched.c */
  241.  
  242. extern int    debug ;
  243. extern long   cur_delta;
  244. extern nptr   cur_node;
  245. extern long   nevent;
  246. extern evptr  evfree ;
  247. extern int    npending;
  248. extern int pending_events( /*  delta, list, end_of_list */ );
  249. extern evptr get_next_event( /*  stop_time */ );
  250. #define free_from_node( ev, nd )                    \
  251.   {                                    \
  252.     if( (nd)->events == (ev) )                        \
  253.     (nd)->events = (ev)->nlink;                    \
  254.     else                                \
  255.       {                                    \
  256.     register evptr  evp;                        \
  257.     for( evp = (nd)->events; evp->nlink != (ev); evp = evp->nlink );\
  258.     evp->nlink = (ev)->nlink;                    \
  259.       }                                    \
  260.   }
  261. #define    FreeEventList( L )    (L)->blink->flink = evfree, evfree = (L)
  262. extern void free_event( /*  event */ );
  263. extern void enqueue_event( /*  n, newvalue, delta, rtime */ );
  264. extern void enqueue_input( /*  n, newvalue */ );
  265. extern void init_event( /* */ );
  266. extern void PuntEvent( /*  node, ev */ );
  267. extern void requeue_events( /*  evlist, thread */ );
  268. extern evptr back_sim_time( /*  btime, is_inc */ );
  269. extern int EnqueueHist( /*  nd, hist, type */ );
  270. extern void DequeueEvent( /*  nd */ );
  271. extern void DelayEvent( /*  ev, delay */ );
  272. extern evptr EnqueueOther( /*  type, time */ );
  273. extern void rm_inc_events( /*  all */ );
  274.  
  275.     /* EXPORTS FROM sim.c */
  276.  
  277. extern nptr   VDD_node;
  278. extern nptr   GND_node;
  279. extern lptr   on_trans;
  280. extern int    nnodes;
  281. extern int    naliases;
  282. extern int    ntrans[ /* NTTYPES */ ];
  283. extern lptr   freeLinks ;
  284. extern tptr   freeTrans ;
  285. extern nptr   freeNodes ;
  286. extern tptr   tcap ;
  287. #define    MIN_CAP        0.0005        /* minimum node capacitance (in pf) */
  288. extern int rd_network( /*  simfile */ );
  289. extern void pTotalNodes( /* */ );
  290. extern void pTotalTxtors( /* */ );
  291. extern void ConnectNetwork( /* */ );
  292.  
  293.     /* EXPORTS FROM sstep.c */
  294.  
  295. extern void switch_model( /*  n */ );
  296.  
  297.     /* EXPORTS FROM stack.c */
  298.  
  299. extern int     stack_txtors ;
  300. extern void pStackedTxtors( /* */ );
  301. extern double StackCap( /*  t */ );
  302. extern void make_stacks( /*  nlist */ );
  303. extern void DestroyStack( /*  stack */ );
  304.  
  305.     /* EXPORTS FROM tpos.c */
  306.  
  307. extern int    txt_coords ;
  308. extern void EnterPos( /*  tran, is_pos */ );
  309. extern tptr FindTxtorPos( /*  x, y */ );
  310. extern void DeleteTxtorPos( /*  tran */ );
  311. extern nptr FindNode_TxtorPos( /*  s */ );
  312. extern void walk_trans( /*  func, arg */ );
  313.  
  314.     /* EXPORTS FROM usage.c */
  315.  
  316. extern void InitUsage( /* */ );
  317. extern void set_usage( /* */ );
  318. extern void uset_usage( /* */ );
  319. extern void print_usage( /*  partial, dest */ );
  320. extern void get_usage( /*  dest */ );
  321. extern void InitUsage( /* */ );
  322. extern void set_usage( /* */ );
  323. extern void uset_usage( /* */ );
  324. extern void print_usage( /*  partial, dest */ );
  325. extern void get_usage( /*  dest */ );
  326.  
  327.     /* EXPORTS FROM version.c */
  328.  
  329. extern char    version[ /**/ ] ;
  330.  
  331.     /* EXPORTS FROM ana.c */
  332.  
  333. extern int AddNode( /*  nd, flag */ );
  334. extern int AddVector( /*  vec, flag */ );
  335. extern void DisplayTraces( /*  isMapped */ );
  336. extern void StopAnalyzer( /* */ );
  337. extern void RestartAnalyzer( /*  first_time, last_time, same_hist */ );
  338. extern void ClearTraces( /* */ );
  339. extern void RemoveVector( /*  b */ );
  340. extern void RemoveNode( /*  n */ );
  341. extern void RemoveAllDeleted( /* */ );
  342. extern void UpdateWindow( /*  endT */ );
  343. extern void TerminateAnalyzer( /* */ );
  344. extern int InitDisplay( /*  fname, display_unit */ );
  345. extern void InitTimes( /*  firstT, stepsize, lastT */ );
  346.